Designers of smartphones, portable audio players, digital cameras, wireless headsets, and other such portable devices (sometimes referred to as power limited devices or PLDs) frequently need to balance a desire to add power consuming features with a desire to have a long battery life. Device designers can improve battery life by using a larger battery, but this is often undesirable because it increases the overall size of the device. For example, a designer of a smartphone might want the device to process high volumes of data at a high frequency and have a bright display, and at the same time be small enough to fit in a pants pocket. Adding features, such as a fast processor or a bright display, therefore typically either lessen a device's battery life or require a larger, higher capacity battery.
In order to achieve appropriate balance between including high power consuming features and keeping a device small, designers implement various power saving techniques. One such technique, sometimes referred to as “frequency scaling,” involves adjusting the frequency of a processor depending on the processes being executed at any given time. Controlling logic within a PLD can increase the processor frequency based on a system specific event, such as a request to process data. Once the device completes the data processing, the controlling logic can lower the processor frequency. For example, the controlling logic within a PLD might raise the operating frequency of the device to its maximum in order to decode compressed audio or video and then lower the frequency upon completion of the processing.
As new events or applications that require higher processing power are initiated and terminated, the control logic constantly adjusts the device's operating frequency accordingly. If these events start and stop at a high rate, then the operating frequency of the PLD needs to be adjusted frequently. This constant adjustment of the operating frequency can be inefficient because there is a power loss associated with changing frequencies. Additionally, in response to an event, a system typically raises the operating frequency to its maximum even if the amount of data to be processed does not require such a high processing speed. A superior approach to adjusting the operating frequency of a PLD in response to specific events is to monitor system performance and determine an optimum or desired operating frequency based on the monitoring. Therefore, there exists in the art a need for an improved system and method for determining a power efficient operating frequency of a system.